package com.finalist.util;

/**
 * 手机号处理类
 * @author pengyb
 *
 */
public class PhoneUtils
{

    /**
     * 判断该手机号码号段
     * @param phone 手机号
     * @return 0-移动号段、1-联通号段、2-电信号段、3-号段不存在
     */
    public static String isMobileNumber(String phone)
    {
        /**
         * 1.中国电信手机号码号段：
         *      2G号段（CDMA网络）133、153
         *      3G号段（CDMA2000网络）180、181、189
         * 2.中国联通手机号码号段：
         *      2G号段（GSM网络）130、131、132、155、156
         *      3G上网卡145
         *      3G号段（WCDMA网络）185、186
         *      4G号段 176
         * 3.中国移动手机号码号段：
         *      2G号段（GSM网络）有139、138、137、136、135、134x（0-8）、159、158、152、151、150、182、183、184
         *      3G号段（TD-SCDMA网络）有157、188、187
         *      3G上网卡 147
         *      4G号段 178
         */

        //移动手机
        String chinaMobile = "^((13[4-9])|(147)|(15[0-2,7-9])|(18[2-4,7-8]))\\d{8}$";

        //联调手机
        String chinaUnicom = "^((13[0-2])|(145)|(15[5-6])|(18[5,6])|(176))\\d{8}$";

        //电信手机
        String chinaTelecom = "^((133)|(153)|(18[0,1,9]))\\d{8}$";

        String mobileFlag = "3";//其它
        if (phone.matches(chinaMobile))
        {
            mobileFlag = "0";
        }
        else if (phone.matches(chinaUnicom))
        {
            mobileFlag = "1";
        }
        else if (phone.matches(chinaTelecom))
        {
            mobileFlag = "2";
        }

        return mobileFlag;
    }

}
